package com.css.common.core.enums;

import com.css.common.core.utils.BaseUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * @description: 支付开票方式
 * @Title: PayKpEnum
 * @Author xlw
 * @Package com.invoice.tcc.enums
 * @Date 2024/11/20 14:02
 */
@AllArgsConstructor
@Getter
public enum PayKpEnum {

    AUTO_PAY_AUTO_KP("01", "自动支付并开票"),

    CONFIRM_PAY_AUTO_KP("02", "确认支付后自动开票"),

    AUTO_PAY_CONFIRM_KP("03", "自动支付并确认开票"),

    CONFIRM_PAY_CONFIRM_KP("04", "确认支付并确认开票");

    private String dm;

    private String ms;

    public static PayKpEnum getInstance(String dm) {
        for (PayKpEnum payKpEnum : PayKpEnum.values()) {
            if (payKpEnum.dm.equals(dm)) {
                return payKpEnum;
            }
        }
        return AUTO_PAY_AUTO_KP;
    }
    public static String getMc(String dm) {
        PayKpEnum res = Arrays.stream(values())
                .filter(x -> x.getDm().equals(dm))
                .findFirst().orElse(null);
        return res == null ? null : res.getMs();
    }
    /**
     *根据是否需确认付款获取枚举代码
     */
    public static String getDmBySfxqrfk(String sfxqr){
        final PayKpEnum e = getBySfxqrfk(sfxqr);
        return BaseUtil.isNull(e)?null:e.getDm();
    }
    /**
     *根据是否需确认付款获取枚举
     * 默认为需确认开票
     */
    public static PayKpEnum getBySfxqrfk(String sfxqr){
        if("Y".equals(sfxqr)){
            return CONFIRM_PAY_AUTO_KP;
        }else if("N".equals(sfxqr)){
            return AUTO_PAY_AUTO_KP;
        }else{
            return CONFIRM_PAY_AUTO_KP;
        }
    }
    /**
     * 根据代码判断是否为自动开票
     * @Param zfkpqrfsDm 支付开票确认方式代码
     */
    public static boolean isAutoKp(String zfkpqrfsDm){
        return AUTO_PAY_AUTO_KP.getDm().equals(zfkpqrfsDm)||CONFIRM_PAY_AUTO_KP.getDm().equals(zfkpqrfsDm);
    }

    /**
     * 根据代码判断是否为自动支付
     * @Param zfkpqrfsDm 支付开票确认方式代码
     */
    public static boolean isAutoZf(String zfkpqrfsDm){
        return AUTO_PAY_AUTO_KP.getDm().equals(zfkpqrfsDm)||AUTO_PAY_CONFIRM_KP.getDm().equals(zfkpqrfsDm);
    }
}
